<html>
<head><meta charset="utf-8"><title>meeting 2019-03-18 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html">meeting 2019-03-18</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="161080580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161080580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161080580">(Mar 18 2019 at 18:00)</a>:</h4>
<p>Hey <span class="user-group-mention" data-user-group-id="692">@WG-traits</span> -- meeting soon?</p>



<a name="161080598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161080598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161080598">(Mar 18 2019 at 18:00)</a>:</h4>
<p>Our goal for this meeting was to setup some sprint-like goals</p>



<a name="161080804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161080804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161080804">(Mar 18 2019 at 18:03)</a>:</h4>
<p>Maybe a good start to try and enumerate the <em>projects</em> for which we might setup goals. I feel like our current projects have been</p>
<ul>
<li>GATs</li>
<li>Unblocking const generics (whether through lazy norm or something else)</li>
<li>Chalk integration with RLS 2.0</li>
<li>Chalk integration with rustc?</li>
<li>Progress on associated type bounds, perhaps? (cc <span class="user-mention" data-user-id="124069">@Alexander Regueiro</span>)</li>
</ul>



<a name="161081125"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081125" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081125">(Mar 18 2019 at 18:06)</a>:</h4>
<p>Don't all speak up at once ;)</p>



<a name="161081144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081144">(Mar 18 2019 at 18:06)</a>:</h4>
<p>hahaha, wasn't clear that you wanted us to speak yet :P</p>



<a name="161081151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081151">(Mar 18 2019 at 18:06)</a>:</h4>
<p>Yeah, I know :P</p>



<a name="161081171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081171">(Mar 18 2019 at 18:06)</a>:</h4>
<p>I guess the first question is -- am I forgetting things :)</p>



<a name="161081182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081182">(Mar 18 2019 at 18:06)</a>:</h4>
<p>that list seems to cover all the topics, but personally i am perpetually a bit confused as to how GATs, chalks + rustc, and lazy norm relate</p>



<a name="161081197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081197">(Mar 18 2019 at 18:07)</a>:</h4>
<p>that is, i <em>think</em> it's possible that they are all the "same" project</p>



<a name="161081212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081212">(Mar 18 2019 at 18:07)</a>:</h4>
<p>well, that's part of what we're here today to discuss</p>



<a name="161081223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081223">(Mar 18 2019 at 18:07)</a>:</h4>
<blockquote>
<p>that is, i <em>think</em> it's possible that they are all the "same" project</p>
</blockquote>
<p>correct</p>



<a name="161081234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081234">(Mar 18 2019 at 18:07)</a>:</h4>
<p>they could be</p>



<a name="161081238"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081238" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081238">(Mar 18 2019 at 18:07)</a>:</h4>
<p>chalk/RLS integration is another thing, but not sure if that's under this wg at all</p>



<a name="161081259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081259">(Mar 18 2019 at 18:07)</a>:</h4>
<p>I put it on the list, I definitely think it's under this WG</p>



<a name="161081263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081263">(Mar 18 2019 at 18:07)</a>:</h4>
<p>I mean it may be a joint effort :)</p>



<a name="161081342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081342">(Mar 18 2019 at 18:08)</a>:</h4>
<p>oh it's there, that's what I get for not drinking coffee</p>



<a name="161081349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081349">(Mar 18 2019 at 18:08)</a>:</h4>
<p>There was a task in a document somewhere you asked me if I was interested in. Is that encompassed in that list?</p>



<a name="161081386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081386">(Mar 18 2019 at 18:08)</a>:</h4>
<p>I guess I think this is maybe the core-most decision at this moment --  I see two options:</p>
<p>1. To do some work on rustc's existing solver and pursuing integrating chalk in a RLS 2.0 context<br>
2. To try integrating chalk into rustc and let the rest of the work fall from that</p>



<a name="161081395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081395">(Mar 18 2019 at 18:08)</a>:</h4>
<blockquote>
<p>There was a task in a document somewhere you asked me if I was interested in. Is that encompassed in that list?</p>
</blockquote>
<p>Yes, that part of the RLS 2.0 thoughts</p>



<a name="161081412"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081412" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081412">(Mar 18 2019 at 18:08)</a>:</h4>
<p>and I guess that reminds me that there are a few other goals that could be on the list, e.g. pursuing more design-based intitiatives</p>



<a name="161081425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081425">(Mar 18 2019 at 18:09)</a>:</h4>
<p><span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="161081431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081431">(Mar 18 2019 at 18:09)</a>:</h4>
<p>e.g., modeling specialization in chalk etc</p>



<a name="161081466"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081466" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081466">(Mar 18 2019 at 18:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so it seems like the main reason <em>not</em> to just pack everything into "chalk integration" is that we see shorter paths to other desirable things, e.g. const generics and GATs</p>



<a name="161081537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081537">(Mar 18 2019 at 18:10)</a>:</h4>
<p>seems correct</p>



<a name="161081542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081542">(Mar 18 2019 at 18:10)</a>:</h4>
<p>maybe we should start by digging into that a bit?</p>



<a name="161081554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081554">(Mar 18 2019 at 18:10)</a>:</h4>
<p>Yes, I was going to suggest we talk a bit about GATs to start</p>



<a name="161081573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081573">(Mar 18 2019 at 18:10)</a>:</h4>
<p>I looked over the <a href="https://paper.dropbox.com/doc/GAT-use-case-analysis--AZg8WYylO2s8iLDD5VOCAxYEAg-xFJQMxHXTOUekCyweukU1" target="_blank" title="https://paper.dropbox.com/doc/GAT-use-case-analysis--AZg8WYylO2s8iLDD5VOCAxYEAg-xFJQMxHXTOUekCyweukU1">set of use cases</a> some</p>



<a name="161081614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081614">(Mar 18 2019 at 18:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Update re. associated type bounds: <span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> has been working on it, particularly the tests I made; we discuss it regularly on Discord.</p>



<a name="161081637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081637">(Mar 18 2019 at 18:11)</a>:</h4>
<p>I think that it would... probably be relatively easy to support the "internal iterator" use case</p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="nb">Iterator</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Item</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">Self</span>: <span class="na">&#39;a</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">next</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span>::<span class="n">Item</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161081652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081652">(Mar 18 2019 at 18:11)</a>:</h4>
<p>but it's probably talking that through in a bit more detail to convince ourselves</p>



<a name="161081719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081719">(Mar 18 2019 at 18:12)</a>:</h4>
<blockquote>
<p>I think that it would... probably be relatively easy to support the "internal iterator" use case</p>
</blockquote>
<p>I've usually thought of this as more "iterable", but I guess it covers a number of patterns</p>



<a name="161081746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081746">(Mar 18 2019 at 18:12)</a>:</h4>
<p>(btw, when I wrote some of the GAT cases I assumed <code>Sized</code> would be easy to handle as a special case... ^^)</p>



<a name="161081755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081755">(Mar 18 2019 at 18:12)</a>:</h4>
<p>yes, including a number of cases in the async world (where this pattern is needed any time you abstract over async fns that borrow)</p>



<a name="161081799"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081799" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081799">(Mar 18 2019 at 18:13)</a>:</h4>
<p>To start, we would have to fix various things in the normalization code -- right now we sort of hard-code that an associated type looks like <code>&lt;P0 as Trait&lt;P1..Pn&gt;&gt;::Foo</code> -- i.e., that the set of parameters on <em>associated type definition</em> is the same as the set <em>from the trait</em></p>



<a name="161081831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081831">(Mar 18 2019 at 18:13)</a>:</h4>
<p>I think this should be relatively easy</p>



<a name="161081850"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081850" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081850">(Mar 18 2019 at 18:13)</a>:</h4>
<p><span class="user-mention" data-user-id="117350">@Sunjay Varma</span> did some of that groundwork already</p>



<a name="161081945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161081945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161081945">(Mar 18 2019 at 18:14)</a>:</h4>
<p>In particular, IIRC, we now have the def-id available of the associated type itself</p>



<a name="161082004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082004">(Mar 18 2019 at 18:15)</a>:</h4>
<p>I guess the next part would be that we have to handle the <em>bounds</em></p>



<a name="161082127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082127">(Mar 18 2019 at 18:16)</a>:</h4>
<p>which is actually .. hmm .. kind of interesting :)</p>



<a name="161082154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082154">(Mar 18 2019 at 18:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> by bounds, do you mean both on the associated type itself and its parameters?</p>



<a name="161082189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082189">(Mar 18 2019 at 18:16)</a>:</h4>
<p>so in general if you have <code>type Foo&lt;'a&gt;: Bounds</code> that is equivalent to a where clause on the trait like</p>
<div class="codehilite"><pre><span></span><span class="k">for</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="o">&lt;</span><span class="n">Self</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Trait</span><span class="o">&gt;</span>::<span class="n">Foo</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span>: <span class="nc">Bounds</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161082245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082245">(Mar 18 2019 at 18:17)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> by bounds, do you mean both on the associated type itself and its parameters?</p>
</blockquote>
<p>well, sort of both -- we have that <code>where Self: 'a</code>, for example</p>



<a name="161082264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082264">(Mar 18 2019 at 18:17)</a>:</h4>
<p>it's actually a kind of subtle point</p>



<a name="161082345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082345">(Mar 18 2019 at 18:18)</a>:</h4>
<p>Right; that's a bound that must be proven on use rather than in the impl</p>



<a name="161082380"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082380" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082380">(Mar 18 2019 at 18:18)</a>:</h4>
<p>we should should come up with two distinct terms</p>



<a name="161082394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082394">(Mar 18 2019 at 18:18)</a>:</h4>
<p>Is the distinction we're talking about clear to everyone? I sort of doubt it :)</p>



<a name="161082435"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082435" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082435">(Mar 18 2019 at 18:19)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> maybe crystallize the distinction by example?</p>



<a name="161082436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082436">(Mar 18 2019 at 18:19)</a>:</h4>
<p>Consider these two <code>Debug</code> bounds:</p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">Debug</span><span class="o">&gt;</span>: <span class="nc">Debug</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161082470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082470">(Mar 18 2019 at 18:19)</a>:</h4>
<p>If I have:</p>
<div class="codehilite"><pre><span></span><span class="k">impl</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">MyType</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">Debug</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161082482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082482">(Mar 18 2019 at 18:19)</a>:</h4>
<p>you can see that I included one of those bounds (the <code>T: Debug</code>) but not the other</p>



<a name="161082566"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082566" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082566">(Mar 18 2019 at 18:20)</a>:</h4>
<p>this is because the impl gets to <em>assume</em> that <code>T: Debug</code> will hold (and whoever "uses" the associated type must in turn prove it), but the impl must <em>prove</em> that <code>Self::Bar&lt;T&gt;: Debug</code> (assuming that <code>T: Debug</code>)</p>



<a name="161082595"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082595" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082595">(Mar 18 2019 at 18:20)</a>:</h4>
<p>let's call the <code>T: Debug</code> bound a "condition" and the other a "requirement", I guess</p>



<a name="161082603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082603">(Mar 18 2019 at 18:20)</a>:</h4>
<p>for now?</p>



<a name="161082634"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082634" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082634">(Mar 18 2019 at 18:21)</a>:</h4>
<p>(unless someone has a better suggestion)</p>



<a name="161082635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082635">(Mar 18 2019 at 18:21)</a>:</h4>
<p>and <code>where</code> clauses are... both?</p>



<a name="161082646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082646">(Mar 18 2019 at 18:21)</a>:</h4>
<p>well, that's a question. I think they are conditions</p>



<a name="161082654"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082654" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082654">(Mar 18 2019 at 18:21)</a>:</h4>
<p>Right. So if I had a type <code>Qxx&lt;T&gt;</code> that is always <code>Debug</code> regardless of <code>T</code>, I could omit the <code>T: Debug</code> entirely?</p>



<a name="161082661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082661">(Mar 18 2019 at 18:21)</a>:</h4>
<p>because <code>type Bar&lt;T: Debug&gt;</code> and <code>type Bar&lt;T&gt; where T: Debug</code> should be equivalent</p>



<a name="161082675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082675">(Mar 18 2019 at 18:21)</a>:</h4>
<p>and <em>requirements</em> can always be moved to the trait anyhow</p>



<a name="161082737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082737">(Mar 18 2019 at 18:22)</a>:</h4>
<p>but to <em>some extent</em> we're bikeshedding here (though it's a good thing to discuss)</p>



<a name="161082760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082760">(Mar 18 2019 at 18:22)</a>:</h4>
<p>that is, in terms of how the compiler works, we can assume some separation</p>



<a name="161082773"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082773" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082773">(Mar 18 2019 at 18:22)</a>:</h4>
<p>no I think it's actually very good to have two terms IMO</p>



<a name="161082789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082789">(Mar 18 2019 at 18:22)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">Alpha</span><span class="o">&gt;</span>: <span class="nc">Beta</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>should be equivalent to:</p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="o">&lt;</span><span class="n">Self</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">Foo</span><span class="o">&gt;</span>::<span class="n">Bar</span>: <span class="nc">Beta</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Bar</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">T</span>: <span class="nc">Alpha</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161082804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082804">(Mar 18 2019 at 18:22)</a>:</h4>
<blockquote>
<p>but to <em>some extent</em> we're bikeshedding here (though it's a good thing to discuss)</p>
</blockquote>
<p>sorry, I didn't mean we were bikeshedding with the terms. I meant debating how the syntax maps to the terms is mildly bikeshedding. But we should probably still discuss it. =)</p>



<a name="161082854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082854">(Mar 18 2019 at 18:23)</a>:</h4>
<p>Right, and when we talk in the "chalk lowering", we usually talk about two sets of where clauses -- one on the trait ("the requirements") and one on the associated type ("the conditions")</p>



<a name="161082867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082867">(Mar 18 2019 at 18:23)</a>:</h4>
<p>So basically what <span class="user-mention" data-user-id="126931">@centril</span> said</p>



<a name="161082892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082892">(Mar 18 2019 at 18:23)</a>:</h4>
<blockquote>
<p>Right. So if I had a type <code>Qxx&lt;T&gt;</code> that is always <code>Debug</code> regardless of <code>T</code>, I could omit the <code>T: Debug</code> entirely?</p>
</blockquote>
<p>correct <span class="user-mention" data-user-id="117350">@Sunjay Varma</span></p>



<a name="161082950"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082950" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082950">(Mar 18 2019 at 18:24)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  I would call one "use bounds/constraints" and the other "implementation bounds/constraints"</p>



<a name="161082963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082963">(Mar 18 2019 at 18:24)</a>:</h4>
<p>based on where it has to be proven</p>



<a name="161082980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161082980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161082980">(Mar 18 2019 at 18:24)</a>:</h4>
<p>@centril w/ the caveat that different associated types may only be available when different constraints are satisfied, yes?</p>



<a name="161083014"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083014" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083014">(Mar 18 2019 at 18:24)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span>  right, as with methods</p>



<a name="161083033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083033">(Mar 18 2019 at 18:25)</a>:</h4>
<p>(e.g. think <code>where Self: Sized</code>)</p>



<a name="161083037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083037">(Mar 18 2019 at 18:25)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> yeah, just clarifying because that's not actually the case today, although I think that's a bug</p>



<a name="161083047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083047">(Mar 18 2019 at 18:25)</a>:</h4>
<p>so-- it's not easy for the compiler's current infrastructure to be scaled to include "use bounds or constraints".</p>



<a name="161083060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083060">(Mar 18 2019 at 18:25)</a>:</h4>
<p>this is a place where chalk is much stronger</p>



<a name="161083079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083079">(Mar 18 2019 at 18:25)</a>:</h4>
<p>(adopting <span class="user-mention" data-user-id="126931">@centril</span>'s terminology)</p>



<a name="161083082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083082">(Mar 18 2019 at 18:25)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> see <a href="https://github.com/rust-lang/rust/issues/57900" target="_blank" title="https://github.com/rust-lang/rust/issues/57900">https://github.com/rust-lang/rust/issues/57900</a></p>



<a name="161083202"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083202" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083202">(Mar 18 2019 at 18:26)</a>:</h4>
<blockquote>
<p>so-- it's not easy for the compiler's current infrastructure to be scaled to include "use bounds or constraints".</p>
</blockquote>
<p>to make this more concrete: what a "use bound" means to us that we have to be able to adjust the "surrounding environment" as we prove various subgoals. e.g., if we have <code>for&lt;T: Debug&gt; { Vec&lt;T&gt;: Debug }</code>, we would need to (a) introduce a type parameter <code>T</code> and (b) add the assumption that <code>T: Debug</code>. Neither of these things is the compiler very good at, but the latter is particularly hard :)</p>



<a name="161083235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083235">(Mar 18 2019 at 18:27)</a>:</h4>
<p>which reminds me, <span class="user-mention" data-user-id="116010">@Aaron Turon</span>, another thing which we <em>were</em> investigating but sort of dropped was the matter of universe integration and lifetimes</p>



<a name="161083242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083242">(Mar 18 2019 at 18:27)</a>:</h4>
<p>and us deciding how we felt about that :)</p>



<a name="161083282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083282">(Mar 18 2019 at 18:27)</a>:</h4>
<p>(for those familiar with Haskell, this is the distinction between:</p>
<div class="codehilite"><pre><span></span><span class="kr">class</span> <span class="kt">Beta</span> <span class="n">self</span> <span class="ow">=&gt;</span> <span class="kt">Foo</span> <span class="n">self</span> <span class="kr">where</span>
    <span class="n">delta</span> <span class="ow">::</span> <span class="kt">Int</span>
    <span class="n">gamma</span> <span class="ow">::</span> <span class="kt">Alpha</span> <span class="n">self</span> <span class="ow">=&gt;</span> <span class="n">self</span> <span class="ow">-&gt;</span> <span class="kt">Bool</span>
</pre></div>


<p>)</p>



<a name="161083437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083437">(Mar 18 2019 at 18:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so to bring this back to use-cases: i think that GATs document shows that we can get a lot of mileage out of just "impl bounds"</p>



<a name="161083469"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083469" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083469">(Mar 18 2019 at 18:29)</a>:</h4>
<p>To come back to the iterable example, I was thinking that it didn't require us to solve so-called "use bounds", but I guess that's not really true. That is, the example was</p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Iterable</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Iter</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">Self</span>: <span class="na">&#39;a</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>


<p>that where clause is a "use bound".</p>



<a name="161083555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083555">(Mar 18 2019 at 18:30)</a>:</h4>
<blockquote>
<p>so to bring this back to use-cases: i think that GATs document shows that we can get a lot of mileage out of just "impl bounds"</p>
</blockquote>
<p>well, that's what I was debating, but I'm not entirely sure.</p>



<a name="161083562"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083562" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083562">(Mar 18 2019 at 18:30)</a>:</h4>
<p>Let me see if I'm confusing myself :)</p>



<a name="161083579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083579">(Mar 18 2019 at 18:30)</a>:</h4>
<p>to be clear i was thinking of the async cases, not iterable</p>



<a name="161083588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083588">(Mar 18 2019 at 18:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> can we "hack" simpler use-bounds &amp; get away with it?</p>



<a name="161083598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083598">(Mar 18 2019 at 18:30)</a>:</h4>
<p>though <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> points out in comments that what i initially wrote for those is probably naive in a few ways</p>



<a name="161083607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083607">(Mar 18 2019 at 18:31)</a>:</h4>
<p>the problem with this <code>where Self: 'a</code> thing, where that comes from, is that you probably want something like</p>
<div class="codehilite"><pre><span></span><span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Iterable</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Iter</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">vec</span>::<span class="n">Iter</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="p">,</span><span class="w"> </span><span class="n">T</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="c1">// requires that T: &#39;a to be WF.. but how do we know that?</span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161083626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083626">(Mar 18 2019 at 18:31)</a>:</h4>
<blockquote>
<p>to be clear i was thinking of the async cases, not iterable</p>
</blockquote>
<p>yeah, I sort of shifted it, but i'm not sure if it matters?</p>



<a name="161083670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083670">(Mar 18 2019 at 18:31)</a>:</h4>
<p>The key part being the comment "requires that T: 'a to be WF.. but how do we know that?" -- the idea would be that we know it because we get to assume that <code>Self: 'a</code> -- i.e., <code>Vec&lt;T&gt;: 'a</code>, which in turn implies <code>T: 'a</code> (we do this sort of deduction today)</p>



<a name="161083744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083744">(Mar 18 2019 at 18:32)</a>:</h4>
<blockquote>
<p>can we "hack" simpler use-bounds &amp; get away with it?</p>
</blockquote>
<p>maybe, lifetime bounds of this kind are handled kind of "differently"</p>



<a name="161083816"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083816" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083816">(Mar 18 2019 at 18:33)</a>:</h4>
<p>let's assume we <strong>could</strong> handle the <code>where self: 'a</code> case</p>



<a name="161083854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083854">(Mar 18 2019 at 18:33)</a>:</h4>
<p>I think we can generally handle proving the "impl bounds" -- we already prove <code>for&lt;'a&gt;</code> sort of things today</p>



<a name="161083866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083866">(Mar 18 2019 at 18:34)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> to clarify, i was thinking of cases like:</p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">AsyncFoo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Fut</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span>: <span class="nc">Future</span><span class="o">&lt;</span><span class="n">Output</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">Bar</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="w">    </span><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">(</span><span class="o">&amp;</span><span class="na">&#39;a</span><span class="w"> </span><span class="bp">self</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nc">Self</span>::<span class="n">Fut</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161083910"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083910" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083910">(Mar 18 2019 at 18:34)</a>:</h4>
<p>and similarly, we should be able to handle the other side where we rely on them as clauses</p>



<a name="161083972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161083972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161083972">(Mar 18 2019 at 18:35)</a>:</h4>
<p>yeah, so my belief is that the <strong>major challenge</strong> to supporting (a limited version of) GATs in the compiler today is dealing with the <code>where Self: 'a</code> business. This limited version would probably by something like "one lifetime parameter without any other use bounds but Self: 'a".</p>



<a name="161084012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084012">(Mar 18 2019 at 18:35)</a>:</h4>
<p>maybe we should look a bit at the other things -- notably chalk integration questions -- and come back to what this means for GATs then?</p>



<a name="161084082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084082">(Mar 18 2019 at 18:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> so in this case do we infer <code>where Self: 'a</code> from <code>foo</code>'s definition?</p>



<a name="161084096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084096">(Mar 18 2019 at 18:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> so i'm kinda slow today, can you spell out whether this WF issue arises with cases like <code>AsyncFoo</code>?</p>



<a name="161084100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084100">(Mar 18 2019 at 18:36)</a>:</h4>
<p>ps I'm not wild about "impl bounds" as the terminology, since (in desugared form) they are where-clauses that appear on the <em>trait</em> (but are <em>proven</em> at the impl)</p>



<a name="161084132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084132">(Mar 18 2019 at 18:36)</a>:</h4>
<p>I imagine it would <span class="user-mention" data-user-id="116010">@Aaron Turon</span> -- let's look at a possible impl</p>



<a name="161084151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084151">(Mar 18 2019 at 18:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  yea I had to stop to think on that one for a bit... happy about changing it to "trait bounds" or something else ;)</p>



<a name="161084176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084176">(Mar 18 2019 at 18:37)</a>:</h4>
<p>"use bounds" was from the POV of where things are proven tho, so it is internally consistent at least ^^</p>



<a name="161084182"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084182" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084182">(Mar 18 2019 at 18:37)</a>:</h4>
<div class="codehilite"><pre><span></span><span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">AsyncFoo</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">MyType</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">Fut</span><span class="o">&lt;</span><span class="na">&#39;a</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="cm">/* ... the key question is if this type involves a `&amp;&#39;a T` ... */</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="161084195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084195">(Mar 18 2019 at 18:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> yes, it would, because the type implementing AsyncFoo might not be 'static</p>



<a name="161084273"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084273" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084273">(Mar 18 2019 at 18:38)</a>:</h4>
<p>So <code>type Fut&lt;'a&gt;</code> needs to only be valid so long as <code>'a</code> doesn't outlive the <code>Self</code> type</p>



<a name="161084318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084318">(Mar 18 2019 at 18:39)</a>:</h4>
<p>put another way, the <code>'a</code> lifetime represents (logically) "the lifetime of a reference to <code>Self</code>" in practice, and we will likely want to rely on that</p>



<a name="161084349"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084349" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084349">(Mar 18 2019 at 18:39)</a>:</h4>
<p>would it be possible to restrict use to only <code>'static</code> <code>Self</code> types? i guess i'm looking for whether there's a minimal case that allows us to abstract over async functions that take in borrowed data</p>



<a name="161084363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084363">(Mar 18 2019 at 18:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> so <code>&amp;'a self</code> ==&gt; <code>self: &amp;'a Self</code> ==&gt; <code>Self: 'a</code> because of <code>&amp;'a X</code> =&gt; <code>X: 'a</code></p>



<a name="161084366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084366">(Mar 18 2019 at 18:39)</a>:</h4>
<p>well that's certainly a first step, good point</p>



<a name="161084369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084369">(Mar 18 2019 at 18:39)</a>:</h4>
<p>(though if we think we can "hack in" the <code>Self: 'a</code> support maybe it's not relevant)</p>



<a name="161084421"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084421" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084421">(Mar 18 2019 at 18:40)</a>:</h4>
<p>i.e., we could do all the rest of the work, and it would just error out for cases that are not <code>'static</code></p>



<a name="161084443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084443">(Mar 18 2019 at 18:40)</a>:</h4>
<p>i.e., if it didn't get to take a <code>where Self: 'a</code> into account</p>



<a name="161084449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084449">(Mar 18 2019 at 18:40)</a>:</h4>
<p>yeah... maybe too hacky to be worth it, idk</p>



<a name="161084478"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084478" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084478">(Mar 18 2019 at 18:40)</a>:</h4>
<p>well, it might make a decent "sprint goal"</p>



<a name="161084488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084488">(Mar 18 2019 at 18:40)</a>:</h4>
<p>otoh I think most use cases really want that</p>



<a name="161084516"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084516" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084516">(Mar 18 2019 at 18:40)</a>:</h4>
<p>that is, sort of the whole <em>point</em> of this is to employ the <code>'a</code> :)</p>



<a name="161084536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084536">(Mar 18 2019 at 18:41)</a>:</h4>
<p>(well, I guess it's not that you can't employ it at all)</p>



<a name="161084561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084561">(Mar 18 2019 at 18:41)</a>:</h4>
<p>the real question is not whether your proposal is too hacky <span class="user-mention" data-user-id="116010">@Aaron Turon</span> -- it's whether <em>fixing</em> this will be too hacky</p>



<a name="161084577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084577">(Mar 18 2019 at 18:41)</a>:</h4>
<p>i.e., I think if we just did a "subset" of the impl steps, we would find it working ok for <code>'static</code> types but not for others</p>



<a name="161084580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084580">(Mar 18 2019 at 18:41)</a>:</h4>
<p>heh yeah -- i was going to raise the question of whether it's feasible to stabilize anything here prior to chalk integration</p>



<a name="161084637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084637">(Mar 18 2019 at 18:42)</a>:</h4>
<p>(or whether we'd be too worried that the behavior might change)</p>



<a name="161084639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084639">(Mar 18 2019 at 18:42)</a>:</h4>
<p>I guess it's a bit early to say</p>



<a name="161084652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084652">(Mar 18 2019 at 18:42)</a>:</h4>
<p>I feel like we could test the behavior, it'd be more a question of impl quality probably</p>



<a name="161084660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084660">(Mar 18 2019 at 18:42)</a>:</h4>
<p>it's sort of another dimension in all this: when we talk about "shorter path" to unblock other things, do we mean on <em>nightly</em> or <em>stable</em>?</p>



<a name="161084670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084670">(Mar 18 2019 at 18:42)</a>:</h4>
<p>yeah</p>



<a name="161084748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084748">(Mar 18 2019 at 18:43)</a>:</h4>
<p>I am sensing we are not going to get to "sprint goals" this week :)</p>



<a name="161084750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084750">(Mar 18 2019 at 18:43)</a>:</h4>
<p>but I think that' sok</p>



<a name="161084757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084757">(Mar 18 2019 at 18:44)</a>:</h4>
<p>I had hoped to sort of have this conversation earlier but it's good we're having it now</p>



<a name="161084806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084806">(Mar 18 2019 at 18:44)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span> for your cases in Fuchsia, is it fair to say that this won't get you very far without  supporting all the kinds of bounds?</p>



<a name="161084815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084815">(Mar 18 2019 at 18:44)</a>:</h4>
<blockquote>
<p>I am sensing we are not going to get to "sprint goals" this week :)</p>
</blockquote>
<p>we could always book an additional meeting</p>



<a name="161084817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084817">(Mar 18 2019 at 18:44)</a>:</h4>
<p>I think we should be careful tho with <code>'static</code> because  if you only impose <code>'static</code>on uses then ostensibly impls get to assume that you haven't imposed anything more so they can say <code>type Foo&lt;'a&gt; = Type;</code> where <code>Type</code> only works for <code>'static</code>.</p>



<a name="161084883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084883">(Mar 18 2019 at 18:45)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> btw... update for meeting notes: re. <code>for&lt;'a: 'b&gt;</code> and such, I haven't done any work yet; busy with let_chains.</p>



<a name="161084981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084981">(Mar 18 2019 at 18:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> i think for GATs i'm increasingly of the mind that this "shorter path" vision won't be enough to really make an impact</p>



<a name="161084993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161084993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161084993">(Mar 18 2019 at 18:46)</a>:</h4>
<p>let me see if I can summarize what we've said so far:</p>
<ul>
<li>Handling the <code>type Item&lt;'a&gt;: Bound where Self: 'a</code> case in rustc today requires:<ul>
<li>handling the <code>&lt;Self as Trait&gt;::Item&lt;'a&gt;</code> substitution (relatively easy)</li>
<li>proving <code>for&lt;'a&gt; &lt;Self as Trait&gt;::Item&lt;'a&gt; :Bound</code> (basically same as things we prove today)</li>
<li>being able to consider <code>where Self: 'a</code> as "in scope" some of the time (harder, we can perhaps do it in some hacky sort of way though)</li>
</ul>
</li>
<li>One question is how much we care about <strong>stabilizing</strong></li>
</ul>



<a name="161085000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085000">(Mar 18 2019 at 18:46)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> We could certainly get by with the <code>'static</code> restriction-- it'd just mean some extra Rc/Arc boilerplate</p>



<a name="161085065"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085065" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085065">(Mar 18 2019 at 18:47)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span> do  you feel like it's worth sprinting toward that on nightly, vs putting the effort into chalk integration?</p>



<a name="161085068"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085068" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085068">(Mar 18 2019 at 18:47)</a>:</h4>
<blockquote>
<p>I think for GATs i'm increasingly of the mind that this "shorter path" vision won't be enough to really make an impact</p>
</blockquote>
<p>Interesting. I was kind of coming to the opposite conclusion. I guess it depends a lot about the <code>where Self: 'a</code> case-- whether we can handle that or not</p>



<a name="161085079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085079">(Mar 18 2019 at 18:47)</a>:</h4>
<p>But also I think we can't answer this question without talking about chalk integration</p>



<a name="161085085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085085">(Mar 18 2019 at 18:47)</a>:</h4>
<p>and what that means / what difficulties we foresee</p>



<a name="161085144"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085144" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085144">(Mar 18 2019 at 18:48)</a>:</h4>
<p>well we could if we felt like our needs were significantly greater than the <code>type Iter&lt;'a&gt;</code> case outlined above</p>



<a name="161085153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085153">(Mar 18 2019 at 18:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> Hm, I think I'd be more interested in seeing how it affects the rest of the ecosystem rather than Fuchsia specifically, in part because we've already gotten used to modeling things so differently as a result of not being able to write <code>async fn</code> in traits today</p>



<a name="161085199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085199">(Mar 18 2019 at 18:48)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> i think where it's coming from for me is that we're just "moving the cliff" rather than eliminating it. that is, you'd be able to do more, but then might be even more stuck when you hit the next cliff</p>



<a name="161085207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085207">(Mar 18 2019 at 18:49)</a>:</h4>
<p>hi.</p>



<a name="161085215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085215">(Mar 18 2019 at 18:49)</a>:</h4>
<p>For example, how disruptive it would be to people using the various bits of tower-service-related stuff, tide, hyper, etc.</p>



<a name="161085226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085226">(Mar 18 2019 at 18:49)</a>:</h4>
<p>I had assumed the meeting was the same time, sorry!</p>



<a name="161085230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085230">(Mar 18 2019 at 18:49)</a>:</h4>
<p><span class="user-mention" data-user-id="127859">@Taylor Cramer</span> fair enough. i'm also thinking that for the rest of the ecosystem, stable matters more</p>



<a name="161085234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085234">(Mar 18 2019 at 18:49)</a>:</h4>
<p>I feel like to really see the impact on the ecosystem though .. hmm .. yeah, I guess what <span class="user-mention" data-user-id="116010">@Aaron Turon</span> said</p>



<a name="161085239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085239">(Mar 18 2019 at 18:49)</a>:</h4>
<p>6:00 was better ironically</p>



<a name="161085245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085245">(Mar 18 2019 at 18:49)</a>:</h4>
<p>oh well, here now</p>



<a name="161085246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085246">(Mar 18 2019 at 18:49)</a>:</h4>
<p>and e.g. for the Tower folks, it's clear they want to wait until there are no cliffs</p>



<a name="161085284"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085284" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085284">(Mar 18 2019 at 18:49)</a>:</h4>
<blockquote>
<p>But also I think we can't answer this question without talking about chalk integration</p>
</blockquote>
<p>yes agreed</p>



<a name="161085354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085354">(Mar 18 2019 at 18:50)</a>:</h4>
<p>What I would be unhappy with is stabilizing and then using the <code>'static</code> limitation in the standard library such that it becomes technical debt we cannot get away from later</p>



<a name="161085366"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085366" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085366">(Mar 18 2019 at 18:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> yeah, in principle I would definitely rather wait longer to get the "correct" thing than continually but more quickly edge towards something that looks usable except in cases X, Y, and Z</p>



<a name="161085379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085379">(Mar 18 2019 at 18:50)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> on that note, can you clarify: are there now <em>two</em> routes for integration? one with rustc today, and one via RLS 2.0 and eventual integration of <em>that</em>?</p>



<a name="161085385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085385">(Mar 18 2019 at 18:50)</a>:</h4>
<p>but certainly there's a practical component of whether or not it's enough for most people</p>



<a name="161085420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085420">(Mar 18 2019 at 18:51)</a>:</h4>
<p>I feel like the <code>AsyncFoo</code> example -- I guess I still feel a bit confused</p>



<a name="161085425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085425">(Mar 18 2019 at 18:51)</a>:</h4>
<p>but let's move a bit on and circle back perhaps</p>



<a name="161085440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085440">(Mar 18 2019 at 18:51)</a>:</h4>
<p>we still on GAT? might need to devote time to other points :-)</p>



<a name="161085441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085441">(Mar 18 2019 at 18:51)</a>:</h4>
<p>heh</p>



<a name="161085444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085444">(Mar 18 2019 at 18:51)</a>:</h4>
<p>time check -- does anyone have a hard stop in 10 min? should we go ahead and schedule some additional time?</p>



<a name="161085452"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085452" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085452">(Mar 18 2019 at 18:51)</a>:</h4>
<p>I'm game to keep going</p>



<a name="161085537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085537">(Mar 18 2019 at 18:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> wrt. other subjects... <code>type Foo = impl Bar;</code>, can you review <a href="https://github.com/rust-lang/rfcs/issues/2515#issuecomment-467238637" target="_blank" title="https://github.com/rust-lang/rfcs/issues/2515#issuecomment-467238637">https://github.com/rust-lang/rfcs/issues/2515#issuecomment-467238637</a> ?</p>



<a name="161085560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085560">(Mar 18 2019 at 18:52)</a>:</h4>
<p>OK, let's leave GATs for a second. I guess it makes sense to focus a bit on chalk. Not sure, <span class="user-mention" data-user-id="131694">@scalexm</span>, if you are around btw?</p>



<a name="161085582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085582">(Mar 18 2019 at 18:53)</a>:</h4>
<p>We could touch briefly on lazy norm -- I think in some sense it is maybe a similar story, though maybe different</p>



<a name="161085631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085631">(Mar 18 2019 at 18:53)</a>:</h4>
<p>about lazy norm... I felt I hit it many times when writing ATB tests for <span class="user-mention" data-user-id="124069">@Alexander Regueiro</span></p>



<a name="161085633"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085633" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085633">(Mar 18 2019 at 18:53)</a>:</h4>
<p>in particular I am not entirely persuaded that generic constants are truly blocked on this, but I feel like it'll take some amount of effort to really investigate it. Basically have to do some of the impl work around that and see what problems we hit.</p>



<a name="161085693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085693">(Mar 18 2019 at 18:54)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> we already have generic constants through associated constants?</p>



<a name="161085698"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085698" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085698">(Mar 18 2019 at 18:54)</a>:</h4>
<p>That is to say, I think that there is (maybe) a way to get const generics working with eager norm</p>



<a name="161085703"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085703" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085703">(Mar 18 2019 at 18:54)</a>:</h4>
<p>No, not really</p>



<a name="161085718"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085718" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085718">(Mar 18 2019 at 18:54)</a>:</h4>
<p>I mean there are various ad-hoc limitations</p>



<a name="161085723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085723">(Mar 18 2019 at 18:54)</a>:</h4>
<p>It's been tricky to get to the bottom of that</p>



<a name="161085750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085750">(Mar 18 2019 at 18:55)</a>:</h4>
<p>That said, I think lazy norm is needed for other reasons beyond that: or certainly there are a whole family of bugs that e.g. <span class="user-mention" data-user-id="126931">@centril</span> was referring to.</p>



<a name="161085761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085761">(Mar 18 2019 at 18:55)</a>:</h4>
<p>It'd probalby be good to get precise about that</p>



<a name="161085777"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085777" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085777">(Mar 18 2019 at 18:55)</a>:</h4>
<p>(including some issues where NLL is not able to capture the user's annotations as precisely as we might like)</p>



<a name="161085857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085857">(Mar 18 2019 at 18:56)</a>:</h4>
<p>So in some sense I feel like there is a <em>similar</em> trade-off to GATs here, but different. There is probably progress possible on rustc today, but I'm not 100% sure on how "low hanging" the fruit is</p>



<a name="161085864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085864">(Mar 18 2019 at 18:56)</a>:</h4>
<p>Like <code>Foo: for&lt;'a&gt; Bar&lt;'a, Assoc: Copy&gt;</code> hits lazy norm issues I think due to desugaring to <code>for&lt;'a&gt; &lt;Foo as Bar&lt;'a&gt;&gt;::Assoc: Copy</code></p>



<a name="161085871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085871">(Mar 18 2019 at 18:56)</a>:</h4>
<p>yeah, probably. that's more about 'normalizing under binders', but it's related</p>



<a name="161085883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085883">(Mar 18 2019 at 18:56)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> did we decide whether lazy norm was needed for fixing type alias bounds yet?</p>



<a name="161085935"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085935" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085935">(Mar 18 2019 at 18:57)</a>:</h4>
<p>it's certainly my preferred route to rationalize type aliases</p>



<a name="161085948"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085948" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085948">(Mar 18 2019 at 18:57)</a>:</h4>
<p>ok, so let's dig a bit into chalk</p>



<a name="161085954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085954">(Mar 18 2019 at 18:57)</a>:</h4>
<p>I’m around</p>



<a name="161085959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161085959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161085959">(Mar 18 2019 at 18:57)</a>:</h4>
<p>to answer your question <span class="user-mention" data-user-id="116010">@Aaron Turon</span>, here is what I've been pondering</p>



<a name="161086024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086024">(Mar 18 2019 at 18:58)</a>:</h4>
<p>on the one hand, <span class="user-mention" data-user-id="131694">@scalexm</span> (and others) did a lot of great work integration chalk into rustc, and we've got something kind of working for some cases (Which reminds me, <span class="user-mention" data-user-id="131694">@scalexm</span>, it's on my todo list to give feedback on your "fixups" PR :P)</p>



<a name="161086055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086055">(Mar 18 2019 at 18:58)</a>:</h4>
<p>there are some nontrivial things left to fix, some of them however are more on the chalk side than rustc side (e.g., we have to work through the best way to handle region constraints)</p>



<a name="161086104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086104">(Mar 18 2019 at 18:59)</a>:</h4>
<p>yeah, region constraints seems like the big outstanding task</p>



<a name="161086184"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086184" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086184">(Mar 18 2019 at 19:00)</a>:</h4>
<p>(from an outside perspective)</p>



<a name="161086203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086203">(Mar 18 2019 at 19:00)</a>:</h4>
<p>but we've also not started the real work of trying to get things "prod ready"</p>



<a name="161086204"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086204" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086204">(Mar 18 2019 at 19:00)</a>:</h4>
<p>Well maybe it’s not « that » big, we just need to figure out how to correctly aggregate identical solutions with different region constraints</p>



<a name="161086210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086210">(Mar 18 2019 at 19:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  So maybe if "we" (read: Felix, other people...) can take some of the r?s off you then you can work more on chalk yourself?</p>



<a name="161086263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086263">(Mar 18 2019 at 19:00)</a>:</h4>
<p>I'm trying desperately to free up some more coding time :)</p>



<a name="161086281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086281">(Mar 18 2019 at 19:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> aight; I'll try to help with freeing you up ^^</p>



<a name="161086325"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086325" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086325">(Mar 18 2019 at 19:01)</a>:</h4>
<p>what I've been pondering about for RLS 2.0 is that -- we have a need to have chalk integration there too, and we have fewer "backwards compat constraints" -- so in particular we might be able to do much deeper integration</p>



<a name="161086334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086334">(Mar 18 2019 at 19:01)</a>:</h4>
<p>and in general we don't have to worry as much about regressing things on the rustc side etc</p>



<a name="161086403"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086403" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086403">(Mar 18 2019 at 19:02)</a>:</h4>
<p>we did some investigation (<a href="https://paper.dropbox.com/doc/Chalk-RLS-integration--AZiKUjydAGBIqA~RoOZdQjyTAg-QCJelXDeaq7GV6jVQln4j" target="_blank" title="https://paper.dropbox.com/doc/Chalk-RLS-integration--AZiKUjydAGBIqA~RoOZdQjyTAg-QCJelXDeaq7GV6jVQln4j">see this paper</a>) and came up with some pretty concrete work items</p>



<a name="161086411"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086411" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086411">(Mar 18 2019 at 19:02)</a>:</h4>
<p>(quick clarification: for RLS 2.0 i believe the "integration" story involves using Chalk as a library; is the same true of the current rustc integration work?)</p>



<a name="161086413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086413">(Mar 18 2019 at 19:02)</a>:</h4>
<p>I'm personally a little concerned too much time is being devoted to RLS 2.0 when there are more pressing concerns, especially for wg-traits, no?</p>



<a name="161086436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086436">(Mar 18 2019 at 19:02)</a>:</h4>
<blockquote>
<p>(quick clarification: for RLS 2.0 i believe the "integration" story involves using Chalk as a library; is the same true of the current rustc integration work?)</p>
</blockquote>
<p>both involve using chalk as a library, but it depends on how much of chalk</p>



<a name="161086441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086441">(Mar 18 2019 at 19:02)</a>:</h4>
<p>currently, rustc uses <code>chalk-engine</code>, which is really a pretty minimal part</p>



<a name="161086462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086462">(Mar 18 2019 at 19:03)</a>:</h4>
<p>the plan for RLS 2.0 was to leverage far more -- e.g., sharing the "lowering code" that goes from impl+trait to rules, etc</p>



<a name="161086471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086471">(Mar 18 2019 at 19:03)</a>:</h4>
<p>and (eventually) the representation of types etc</p>



<a name="161086561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086561">(Mar 18 2019 at 19:04)</a>:</h4>
<p>ok -- so i guess a different question is, if the ultimate goal is to use shared crates, it seems like the rustc and RLS 2.0 efforts could intercept each other nicely by both being centered around that structure?</p>



<a name="161086588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086588">(Mar 18 2019 at 19:05)</a>:</h4>
<p>they don't seem directly at odds</p>



<a name="161086598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086598">(Mar 18 2019 at 19:05)</a>:</h4>
<p>I'm not sure if that's what you meant</p>



<a name="161086609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086609">(Mar 18 2019 at 19:05)</a>:</h4>
<p>( in other words, I think we could pursue both to some extent )</p>



<a name="161086622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086622">(Mar 18 2019 at 19:05)</a>:</h4>
<p>I do think that rustc should be the priority where/if there's need to prioritize</p>



<a name="161086667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086667">(Mar 18 2019 at 19:06)</a>:</h4>
<blockquote>
<p>I'm personally a little concerned too much time is being devoted to RLS 2.0 when there are more pressing concerns, especially for wg-traits, no?</p>
</blockquote>
<p>well, this is not entirely clear to me, but I think it's a good question =) I see it being pretty important to help get RLS 2.0 up and going, and pretty important to validate out the chalk approach and find what problems we are going to find. But certainly if we are blocking on chalk for GATs + norm that changes things.</p>



<a name="161086680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086680">(Mar 18 2019 at 19:06)</a>:</h4>
<p>(i.e. rustc + chalk, not rustc alone)</p>



<a name="161086691"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086691" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086691">(Mar 18 2019 at 19:06)</a>:</h4>
<p>well, so more concretely, i'm imagining that rustc uses some parts of chalk in order to get expressivity benefits; meanwhile, RLS 2.0 pushes further out ahead, iterating on deeper modularization questions; and then over time, rustc is shifted to use more of these shared libraries as well</p>



<a name="161086710"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086710" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086710">(Mar 18 2019 at 19:07)</a>:</h4>
<p>yes, I was contemplating this plan</p>



<a name="161086741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086741">(Mar 18 2019 at 19:07)</a>:</h4>
<p>but with the  hope that we can ship some chalk-based features in rustc <em>before</em> full RLS 2.0 "integration"</p>



<a name="161086769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086769">(Mar 18 2019 at 19:07)</a>:</h4>
<p>I mean maybe the way to think about it is just one project -- "chalk integration"</p>



<a name="161086825"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086825" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086825">(Mar 18 2019 at 19:08)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span>  I agree strongly with the "before" bit ;) -- It would be a bummer to have the rustc side wait until middle of 2020 or so</p>



<a name="161086879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086879">(Mar 18 2019 at 19:09)</a>:</h4>
<p>it's basically ready now. :-) just adding the feature gate and cleaning up things.</p>



<a name="161086924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086924">(Mar 18 2019 at 19:09)</a>:</h4>
<p>Niko, should I r? you when it is?</p>



<a name="161086927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086927">(Mar 18 2019 at 19:09)</a>:</h4>
<p>So I'm re-reading <a href="#narrow/stream/144729-t-compiler.2Fwg-traits/topic/.2358305.20.22small.20fixes.20to.20chalk.22.20PR/near/160383401" title="#narrow/stream/144729-t-compiler.2Fwg-traits/topic/.2358305.20.22small.20fixes.20to.20chalk.22.20PR/near/160383401">the comments <span class="user-mention" data-user-id="131694">@scalexm</span> made here</a></p>



<a name="161086983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161086983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161086983">(Mar 18 2019 at 19:10)</a>:</h4>
<p>which map pretty closely to my memory in terms of chalk next steps</p>



<a name="161087013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087013">(Mar 18 2019 at 19:10)</a>:</h4>
<blockquote>
<p>Niko, should I r? you when it is?</p>
</blockquote>
<p>sorry what we are talking about here? your PR?</p>



<a name="161087187"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087187" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087187">(Mar 18 2019 at 19:12)</a>:</h4>
<p>if we were going to pursue chalk integration full steam, I guess that I would want to focus our energy on</p>
<ul>
<li>landing <span class="user-mention" data-user-id="131694">@scalexm</span>'s PR -- does't sem too hard</li>
<li>the region unification story -- I'm interested in this, something of a design/discussion question</li>
<li>altering the "clause selection order" and builtin impl story -- I think there are some relatively clear-ish steps we can take here, personally</li>
</ul>



<a name="161087215"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087215" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087215">(Mar 18 2019 at 19:12)</a>:</h4>
<p>Maybe the thing to do is this</p>



<a name="161087219"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087219" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087219">(Mar 18 2019 at 19:12)</a>:</h4>
<p>we have these sprints for a reason</p>



<a name="161087223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087223">(Mar 18 2019 at 19:12)</a>:</h4>
<p>we can try for 6 weeks</p>



<a name="161087229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087229">(Mar 18 2019 at 19:12)</a>:</h4>
<p>and re-evaluate :)</p>



<a name="161087239"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087239" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087239">(Mar 18 2019 at 19:13)</a>:</h4>
<p>but we should try to set some clear goals</p>



<a name="161087248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087248">(Mar 18 2019 at 19:13)</a>:</h4>
<p>so, chalk is still limited in terms of what it can express today.. full rustc integration <em>could</em> pave the way for the remaining aspects of Rust that it doesn't model</p>



<a name="161087268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087268">(Mar 18 2019 at 19:13)</a>:</h4>
<p>(and I would like to keep the RLS 2.0 ball going a bit)</p>



<a name="161087285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087285">(Mar 18 2019 at 19:13)</a>:</h4>
<p>but I think a lot of that was working on refactoring and improving chalk</p>



<a name="161087291"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087291" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087291">(Mar 18 2019 at 19:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> &gt; if we were going to pursue chalk integration full steam, [...]</p>
<p>Yes, yes please <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="161087375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087375">(Mar 18 2019 at 19:14)</a>:</h4>
<blockquote>
<p>so, chalk is still limited in terms of what it can express today.. full rustc integration <em>could</em> pave the way for the remaining aspects of Rust that it doesn't model</p>
</blockquote>
<p>and yes, this is a thing too, extending to cover various bits of rust we don't cover. I think the list is roughly</p>
<ul>
<li>trait objects (<span class="user-mention" data-user-id="131694">@scalexm</span> has a PR and proposal here)</li>
<li>implied bounds and trait objects</li>
<li>specialization</li>
</ul>
<p>uuuuuuuh anything else? :)</p>



<a name="161087409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087409">(Mar 18 2019 at 19:15)</a>:</h4>
<p>may be crazy but since we're talking about sharing a representation and lower code.. was there ever any talk of converting HIR to chalk-ir?</p>



<a name="161087416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087416">(Mar 18 2019 at 19:15)</a>:</h4>
<p>yes</p>



<a name="161087418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087418">(Mar 18 2019 at 19:15)</a>:</h4>
<p>I looked into it some</p>



<a name="161087431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087431">(Mar 18 2019 at 19:15)</a>:</h4>
<p>it's maybe plausible <em>but</em> we already wrote a lot of that code</p>



<a name="161087438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087438">(Mar 18 2019 at 19:15)</a>:</h4>
<p>I think I'd rather pursue that on the RLS 2.0 side and come back</p>



<a name="161087445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087445">(Mar 18 2019 at 19:15)</a>:</h4>
<p>so I was thinkg</p>



<a name="161087451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087451">(Mar 18 2019 at 19:15)</a>:</h4>
<p>one of my big fears around chalk integration</p>



<a name="161087504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087504">(Mar 18 2019 at 19:16)</a>:</h4>
<p>has to do with the way the solver works --</p>



<a name="161087535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087535">(Mar 18 2019 at 19:16)</a>:</h4>
<p>I worry that it will take us some time to get the "evaluation strategy" tweaked right, so that it does't wind up taking a lot of time to explore useless avenues</p>



<a name="161087555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087555">(Mar 18 2019 at 19:16)</a>:</h4>
<p>it's <em>supposed</em> to be good at that but this is unproven</p>



<a name="161087580"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087580" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087580">(Mar 18 2019 at 19:17)</a>:</h4>
<p>I'm trying to think if there is something we can do to help "tilt" our evaluation in that direction</p>



<a name="161087632"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087632" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087632">(Mar 18 2019 at 19:17)</a>:</h4>
<p>I guess that it means that (e.g.) features like specialization are probably less important, but things like clause selection order and improving hacks around <code>?T: Sized</code> are important</p>



<a name="161087635"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087635" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087635">(Mar 18 2019 at 19:17)</a>:</h4>
<p>maybe I should explain what I'm worried about?</p>



<a name="161087723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087723">(Mar 18 2019 at 19:18)</a>:</h4>
<p>the tl;dr is that it is possible, given impls like</p>
<div class="codehilite"><pre><span></span><span class="k">impl</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Trait</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">..</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>to produce a lot of answers for <code>Trait</code> -- e.g., basically <code>Vec&lt;T&gt;</code> for any sized <code>T</code> will do</p>



<a name="161087727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087727">(Mar 18 2019 at 19:18)</a>:</h4>
<p>(i personally think that getting full-blown GATs working is more important than specialization; also, this re-raises the point that Chalk integration could help with another big priority, namely compiler perf)</p>



<a name="161087731"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087731" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087731">(Mar 18 2019 at 19:18)</a>:</h4>
<p>the way that the solver works, it <em>could</em> (in some cases) wind up enumerating those for a while</p>



<a name="161087750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087750">(Mar 18 2019 at 19:19)</a>:</h4>
<blockquote>
<p>(i personally think that getting full-blown GATs working is more important than specialization; also, this re-raises the point that Chalk integration could help with another big priority, namely compiler perf)</p>
</blockquote>
<p>yes, potentially</p>



<a name="161087756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087756">(Mar 18 2019 at 19:19)</a>:</h4>
<p>ok, so, we'll focus largley on chalk and less on "short term" fixes, at least for this sprint</p>



<a name="161087765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087765">(Mar 18 2019 at 19:19)</a>:</h4>
<p>I think an important question to ask is: who is going to have what amount of time :)</p>



<a name="161087786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087786">(Mar 18 2019 at 19:19)</a>:</h4>
<p>I am planning to <em>try</em> to reserve Mondays for trait coding, at least, and maybe another day. I guess we'll see. But I'm also on PTO for at least one week :P</p>



<a name="161087846"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087846" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087846">(Mar 18 2019 at 19:20)</a>:</h4>
<p>i will have time but will need mentoring</p>



<a name="161087847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087847">(Mar 18 2019 at 19:20)</a>:</h4>
<p>I don’t feel like I have enough time to actively work on the chalk integration in rustc, but I can advise</p>



<a name="161087862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087862">(Mar 18 2019 at 19:20)</a>:</h4>
<p>I think I would expect that most folks would need mentoring</p>



<a name="161087870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087870">(Mar 18 2019 at 19:20)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  in the quantified constraints paper they talk about a technique they call "focusing", idk if that would help but it's worth a read; Here's the ICFP talk: <a href="https://www.youtube.com/watch?v=TDRvd0A6j6k" target="_blank" title="https://www.youtube.com/watch?v=TDRvd0A6j6k">https://www.youtube.com/watch?v=TDRvd0A6j6k</a></p>
<div class="youtube-video message_inline_image"><a data-id="TDRvd0A6j6k" href="https://www.youtube.com/watch?v=TDRvd0A6j6k" target="_blank" title="https://www.youtube.com/watch?v=TDRvd0A6j6k"><img src="https://i.ytimg.com/vi/TDRvd0A6j6k/default.jpg"></a></div>



<a name="161087881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087881">(Mar 18 2019 at 19:20)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> ok thanks</p>



<a name="161087882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087882">(Mar 18 2019 at 19:20)</a>:</h4>
<p>I may have some time also</p>



<a name="161087887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087887">(Mar 18 2019 at 19:20)</a>:</h4>
<p>(I didn't know the talk was online)</p>



<a name="161087919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087919">(Mar 18 2019 at 19:21)</a>:</h4>
<p>(most ICFP talks are online ^^, and they are pretty great)</p>



<a name="161087990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161087990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161087990">(Mar 18 2019 at 19:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> when is your PTO?</p>



<a name="161088000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088000">(Mar 18 2019 at 19:22)</a>:</h4>
<p>first week of april</p>



<a name="161088010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088010">(Mar 18 2019 at 19:22)</a>:</h4>
<p>gonna tour Uruguay after Rust LATAM</p>



<a name="161088015"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088015" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088015">(Mar 18 2019 at 19:22)</a>:</h4>
<p>and yeah, there's that too :)</p>



<a name="161088022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088022">(Mar 18 2019 at 19:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span>  (there's a talk about lambda prolog ("makam") that may interest you, <a href="https://www.youtube.com/watch?v=tg1a3Dd6Se0" target="_blank" title="https://www.youtube.com/watch?v=tg1a3Dd6Se0">https://www.youtube.com/watch?v=tg1a3Dd6Se0</a>)</p>
<div class="youtube-video message_inline_image"><a data-id="tg1a3Dd6Se0" href="https://www.youtube.com/watch?v=tg1a3Dd6Se0" target="_blank" title="https://www.youtube.com/watch?v=tg1a3Dd6Se0"><img src="https://i.ytimg.com/vi/tg1a3Dd6Se0/default.jpg"></a></div>



<a name="161088029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088029">(Mar 18 2019 at 19:22)</a>:</h4>
<p>I remember the paper</p>



<a name="161088053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088053">(Mar 18 2019 at 19:23)</a>:</h4>
<p>so i'm going to put a few things into the <a href="https://paper.dropbox.com/doc/WG-Traits-Planning-Meeting--AZhwUxcUHq2KDbqDVoFRQARDAg-oDfr6ct8xx63HSAOOmIZX" target="_blank" title="https://paper.dropbox.com/doc/WG-Traits-Planning-Meeting--AZhwUxcUHq2KDbqDVoFRQARDAg-oDfr6ct8xx63HSAOOmIZX">dropbox paper document</a> regarding sprint goals</p>



<a name="161088066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088066">(Mar 18 2019 at 19:23)</a>:</h4>
<p>OK, seems like it'd be good to try to build up some momentum over the next 1.5 weeks</p>



<a name="161088071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088071">(Mar 18 2019 at 19:23)</a>:</h4>
<p>(enough that it can continue without you)</p>



<a name="161088076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088076">(Mar 18 2019 at 19:23)</a>:</h4>
<p>i won't be at Rust LATAM</p>



<a name="161088159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088159">(Mar 18 2019 at 19:24)</a>:</h4>
<p>Yes I think a good idea <span class="user-mention" data-user-id="116010">@Aaron Turon</span> would be for us to frontload some amoutn of work</p>



<a name="161088162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088162">(Mar 18 2019 at 19:24)</a>:</h4>
<p>i.e., me + you perhaps</p>



<a name="161088163"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088163" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088163">(Mar 18 2019 at 19:24)</a>:</h4>
<p>I have a project in mind ;)</p>



<a name="161088172"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088172" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088172">(Mar 18 2019 at 19:24)</a>:</h4>
<p>sounds great!</p>



<a name="161088216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088216">(Mar 18 2019 at 19:25)</a>:</h4>
<p>so i'm typing a bit into the paper and perhaps folks should drop in there, but something <em>here</em> I want to throw out for future dicussion:</p>
<ul>
<li>I wanted to setup a weekly Zoom slot for "design meetings"</li>
</ul>



<a name="161088224"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088224" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088224">(Mar 18 2019 at 19:25)</a>:</h4>
<p>I was thinking we could keep a queue of topics</p>



<a name="161088230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088230">(Mar 18 2019 at 19:25)</a>:</h4>
<p>but basically there is some amount of design discussion we should be doing</p>



<a name="161088282"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088282" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088282">(Mar 18 2019 at 19:26)</a>:</h4>
<p>and people could nominate things for that week -- a place to talk over in detail the question they are thinking about</p>



<a name="161088305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088305">(Mar 18 2019 at 19:26)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> is that just for chalk or in general?</p>



<a name="161088306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088306">(Mar 18 2019 at 19:26)</a>:</h4>
<p>(been thinking about how to make sure we have some time for that)</p>



<a name="161088317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088317">(Mar 18 2019 at 19:27)</a>:</h4>
<p>I would say .. anything? but priority for sprint topics? maybe just sprint topics?</p>



<a name="161088361"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088361" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088361">(Mar 18 2019 at 19:27)</a>:</h4>
<p>sgtm</p>



<a name="161088498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088498">(Mar 18 2019 at 19:29)</a>:</h4>
<p><span class="user-mention" data-user-id="117350">@Sunjay Varma</span> so in the RLS doc I put down "remove concept of “local and external” and reformulate in terms of crate-ids — make coherence relative to a specific crate? " and proposed it for you</p>



<a name="161088513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088513">(Mar 18 2019 at 19:29)</a>:</h4>
<p>this is a good example of work that is worthwhile I think, even though it won't directly affect rustc</p>



<a name="161088522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088522">(Mar 18 2019 at 19:29)</a>:</h4>
<p>are you still interested in that?</p>



<a name="161088527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088527">(Mar 18 2019 at 19:29)</a>:</h4>
<p>how much time <em>do</em> you have?</p>



<a name="161088535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088535">(Mar 18 2019 at 19:29)</a>:</h4>
<blockquote>
<p>even though it won't directly affect rustc</p>
</blockquote>
<p>yet...</p>



<a name="161088614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088614">(Mar 18 2019 at 19:30)</a>:</h4>
<blockquote>
<p>how much time <em>do</em> you have?</p>
</blockquote>
<p>by this I mean .. I don't want to pressure you to some extent :) it doesn't seem <em>that</em> hard to me though, we could probably schedule an hour to talk it over</p>



<a name="161088659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088659">(Mar 18 2019 at 19:32)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> </p>
<blockquote>
<p>i personally think that getting full-blown GATs working is more important than specialization</p>
</blockquote>
<p>fwiw (maybe nothing, just figured I should say something) I disagree</p>



<a name="161088743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088743">(Mar 18 2019 at 19:32)</a>:</h4>
<p>because I think it's much more common for people in all parts of Rust to be blocked by an issue that's wrapped up in details of coherence and specialization than it is for them to need GATs</p>



<a name="161088749"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088749" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088749">(Mar 18 2019 at 19:33)</a>:</h4>
<p>hah, fair enough! though i think in the end it doesn't matter that much, since either is dependent on chalk integration, and GATs happens immediately</p>



<a name="161088757"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088757" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088757">(Mar 18 2019 at 19:33)</a>:</h4>
<p>(I think specialization has a lot more open questions and the path to stabilization is much less clear)</p>



<a name="161088782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088782">(Mar 18 2019 at 19:33)</a>:</h4>
<p>mhm-- it also has a much clearer path towards an MVP though (I think)</p>



<a name="161088793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088793">(Mar 18 2019 at 19:33)</a>:</h4>
<p>(I don't ^^)</p>



<a name="161088802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088802">(Mar 18 2019 at 19:33)</a>:</h4>
<p>like, we're almost at a point where we could stabilize the existing implementation if you only allow specialization that uses concrete types</p>



<a name="161088852"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088852" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088852">(Mar 18 2019 at 19:34)</a>:</h4>
<p>which is 90% of my needs</p>



<a name="161088895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088895">(Mar 18 2019 at 19:34)</a>:</h4>
<p>We haven't even discussed <code>specialize(T: Foo)</code> due to <span class="user-mention" data-user-id="116010">@Aaron Turon</span> -- I don't see how we can stabilize the existing implementation.</p>



<a name="161088919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088919">(Mar 18 2019 at 19:35)</a>:</h4>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> so we discussed over in <a class="stream" data-stream-id="191167" href="/#narrow/stream/191167-t-compiler.2Fwg-rls-2.2E0.2Fchalk">#t-compiler/wg-rls-2.0/chalk</a> this work item in some detail:</p>
<blockquote>
<p>refactor lowering code to salsa queries that “demand” information</p>
</blockquote>
<p>I didn't start doing anything there -- I'm presuming you didn't either. It doesn't really help rustc per se, but I am wondering if we feel it's worth trying to do? It seems like a lot of it was kind of "porting over" some of the "on demand" code from rustc?</p>
<p>I guess what I'm trying to figure out is just how <em>focused</em> to be.</p>



<a name="161088956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088956">(Mar 18 2019 at 19:35)</a>:</h4>
<p>Probably more focused is better.</p>



<a name="161088981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161088981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161088981">(Mar 18 2019 at 19:35)</a>:</h4>
<blockquote>
<p>Probably more focused is better.</p>
</blockquote>
<p>seems right for our first sprint</p>



<a name="161089106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089106">(Mar 18 2019 at 19:37)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> I mean, it obviously wouldn't be the existing implementation exactly, but conceptually the bits that need to be changed are a much smaller implementation concern than GATs</p>



<a name="161089116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089116">(Mar 18 2019 at 19:37)</a>:</h4>
<p>(I suggest we move the specialization talk to a distinct topic)</p>



<a name="161089120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Taylor Cramer <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089120">(Mar 18 2019 at 19:37)</a>:</h4>
<p>sg</p>



<a name="161089195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089195">(Mar 18 2019 at 19:38)</a>:</h4>
<p>re: sprint, can we devote some time to putting up a clear issue list with some info on at getting started with each issue?</p>



<a name="161089207"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089207" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089207">(Mar 18 2019 at 19:38)</a>:</h4>
<p>or was your plan more to assign things to particular people from the start</p>



<a name="161089242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089242">(Mar 18 2019 at 19:39)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I barely started the queryfication work in chalk</p>



<a name="161089256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089256">(Mar 18 2019 at 19:39)</a>:</h4>
<p>But that’s right basically it was like porting over the code in rustc</p>



<a name="161089328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089328">(Mar 18 2019 at 19:40)</a>:</h4>
<blockquote>
<p>re: sprint, can we devote some time to putting up a clear issue list with some info on at getting started with each issue?</p>
</blockquote>
<p>that's what I'm trying to do now, <span class="user-mention" data-user-id="116883">@tmandry</span> -- that is, break things down into  a bit more concrete steps. We don't necessarily have to have people assigned, but it's .. maybe a good idea.</p>



<a name="161089331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089331">(Mar 18 2019 at 19:40)</a>:</h4>
<p>I don’t know if it’s worth doing it, I felt like it was, but it will definitely not be helping rustc in the short term</p>



<a name="161089394"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089394" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089394">(Mar 18 2019 at 19:41)</a>:</h4>
<p>I still feel unsettled. I feel a certain urgency to see RLS 2.0 making progress. I also feel like "chalk the codebase" needs cleanup, and that there maybe an opportunity to parallelize a bit there -- but I do <em>also</em> think none of us have a ton of time, so the focus right now should probably be on getting <strong>more people familiar with the code</strong> than anything.</p>



<a name="161089396"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089396" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089396">(Mar 18 2019 at 19:41)</a>:</h4>
<p>On the other hand, it didn’t seem like a « huge » work either, just a big refactoring</p>



<a name="161089399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089399">(Mar 18 2019 at 19:41)</a>:</h4>
<p>Which actually might be an argument in favor, i.e., but looking on it more as a mentoring task</p>



<a name="161089414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089414">(Mar 18 2019 at 19:41)</a>:</h4>
<p>(I have to run, but I'd be interested in picking issues off at some point)</p>



<a name="161089467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089467">(Mar 18 2019 at 19:42)</a>:</h4>
<p>Basically it seems like a problem that right now only <span class="user-mention" data-user-id="131694">@scalexm</span> and I kind of have the two codebases in our heads</p>



<a name="161089479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089479">(Mar 18 2019 at 19:42)</a>:</h4>
<blockquote>
<p>how much time <em>do</em> you have?</p>
</blockquote>
<p>I have a good amount of time. I will need some guidance though so I know what is needed and what I need to do. Is there any issue + some mentoring instructions somewhere?</p>



<a name="161089488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089488">(Mar 18 2019 at 19:42)</a>:</h4>
<blockquote>
<p>On the other hand, it didn’t seem like a « huge » work either, just a big refactoring</p>
</blockquote>
<p>why don't we say this</p>



<a name="161089521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089521">(Mar 18 2019 at 19:43)</a>:</h4>
<p>maybe this goes against the way sprints should work but I was thinking maybe it's useful to have a kind of "shortlist" of other ideas, depending on how things go</p>



<a name="161089542"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089542" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089542">(Mar 18 2019 at 19:43)</a>:</h4>
<blockquote>
<p>I have a good amount of time. I will need some guidance though so I know what is needed and what I need to do. Is there any issue + some mentoring instructions somewhere?</p>
</blockquote>
<p>no but I think one could be prepared</p>



<a name="161089712"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089712" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089712">(Mar 18 2019 at 19:45)</a>:</h4>
<blockquote>
<p>no but I think one could be prepared</p>
</blockquote>
<p>That would be helpful. :)</p>



<a name="161089800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089800">(Mar 18 2019 at 19:46)</a>:</h4>
<p>I think what might be faster, <span class="user-mention" data-user-id="117350">@Sunjay Varma</span>, is if we did a recorded call to talk it over</p>



<a name="161089803"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089803" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089803">(Mar 18 2019 at 19:46)</a>:</h4>
<p>although maybe not</p>



<a name="161089840"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089840" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089840">(Mar 18 2019 at 19:47)</a>:</h4>
<p>That could work too</p>



<a name="161089875"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089875" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089875">(Mar 18 2019 at 19:47)</a>:</h4>
<p>Thursday at 2 pm EST?</p>



<a name="161089979"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089979" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089979">(Mar 18 2019 at 19:48)</a>:</h4>
<p>Maybe, let's discuss that in a bit.</p>



<a name="161089990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089990">(Mar 18 2019 at 19:48)</a>:</h4>
<p>kk</p>



<a name="161089991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089991">(Mar 18 2019 at 19:48)</a>:</h4>
<p>(well, that time doesn't work)</p>



<a name="161089999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161089999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161089999">(Mar 18 2019 at 19:49)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> -- so I put you down for this "region ordering" question</p>



<a name="161090010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090010">(Mar 18 2019 at 19:49)</a>:</h4>
<p>er, sorry</p>



<a name="161090018"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090018" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090018">(Mar 18 2019 at 19:49)</a>:</h4>
<p>"builtin bounds" / goal reordering</p>



<a name="161090047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090047">(Mar 18 2019 at 19:49)</a>:</h4>
<p>that's a bit vague and I suspect you have no idea what I am talking about</p>



<a name="161090081"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090081" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090081">(Mar 18 2019 at 19:49)</a>:</h4>
<p>heh, indeed, but i'm game anyway!</p>



<a name="161090160"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090160" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090160">(Mar 18 2019 at 19:50)</a>:</h4>
<p>so i'm trying to think how to "get started" on it</p>



<a name="161090168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090168">(Mar 18 2019 at 19:50)</a>:</h4>
<p>in light of that ;)</p>



<a name="161090231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090231">(Mar 18 2019 at 19:51)</a>:</h4>
<p>actually, not sure how many people are still around (this is a marathon planning session...) but I'm just going to keep dumping ideas for a second</p>



<a name="161090235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090235">(Mar 18 2019 at 19:51)</a>:</h4>
<p>could always start with a recorded zoom meeting?</p>



<a name="161090237"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090237" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090237">(Mar 18 2019 at 19:51)</a>:</h4>
<p>basically, what is the set of codebases that people need to become familiar with</p>



<a name="161090248"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090248" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090248">(Mar 18 2019 at 19:51)</a>:</h4>
<p>yes, I am jumping one step back from that idea</p>



<a name="161090305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090305">(Mar 18 2019 at 19:52)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span>  recorded zoom meeting <em>now</em>?</p>



<a name="161090316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090316">(Mar 18 2019 at 19:52)</a>:</h4>
<p>no, i meant, when we want to get started on this work item</p>



<a name="161090331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090331">(Mar 18 2019 at 19:52)</a>:</h4>
<p>oh, yes, makes sense</p>



<a name="161090332"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090332" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090332">(Mar 18 2019 at 19:52)</a>:</h4>
<p>basically it's an easy way for <span class="user-mention" data-user-id="116009">@nikomatsakis</span> to give the  lay of the land without too much prep</p>



<a name="161090335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090335">(Mar 18 2019 at 19:52)</a>:</h4>
<p>I think it's something like this:</p>
<ul>
<li>chalk-engine, how it works internally</li>
<li>the existing rustc-chalk integration, how it works and bridges to chalk-engine</li>
<li><em>maybe</em> how chalk lowering works, but that's some of the stuff we want to refactor</li>
</ul>



<a name="161090385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090385">(Mar 18 2019 at 19:53)</a>:</h4>
<p>maybe a "sprint work item" in and of itself should be recording a few sessions trying to over the related code</p>



<a name="161090398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090398">(Mar 18 2019 at 19:53)</a>:</h4>
<p>(with an eye towards some of our goals)</p>



<a name="161090419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090419">(Mar 18 2019 at 19:53)</a>:</h4>
<p>I'm trying to decide whether it is possible to cover chalk-engine + existing rustc-chalk integration in one hour</p>



<a name="161090420"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090420" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090420">(Mar 18 2019 at 19:53)</a>:</h4>
<p>maybe</p>



<a name="161090427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090427">(Mar 18 2019 at 19:54)</a>:</h4>
<p>it seems potentially nice to do so</p>



<a name="161090467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090467">(Mar 18 2019 at 19:54)</a>:</h4>
<p>since we could e.g. follow a single example "end to end"</p>



<a name="161090495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090495">(Mar 18 2019 at 19:54)</a>:</h4>
<p>actually I think it probably makes sense to start with the rustc-chalk integration</p>



<a name="161090513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090513">(Mar 18 2019 at 19:54)</a>:</h4>
<p>well I don't know, one or the other</p>



<a name="161090520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090520">(Mar 18 2019 at 19:55)</a>:</h4>
<p>haha</p>



<a name="161090529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090529">(Mar 18 2019 at 19:55)</a>:</h4>
<p>regardless, maybe we should aim to do something tomorrow</p>



<a name="161090538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090538">(Mar 18 2019 at 19:55)</a>:</h4>
<p>for me personally, i imagine it'll be pretty easy to get back up to speed with Chalk</p>



<a name="161090555"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090555" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090555">(Mar 18 2019 at 19:55)</a>:</h4>
<p>and I'll decide in the meantime ;)</p>



<a name="161090565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090565">(Mar 18 2019 at 19:55)</a>:</h4>
<p>probably somewhat less so rustc, since it's been a lot longer since i worked on that</p>



<a name="161090579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090579">(Mar 18 2019 at 19:55)</a>:</h4>
<blockquote>
<p>regardless, maybe we should aim to do something tomorrow</p>
</blockquote>
<p>wfm</p>



<a name="161090652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090652">(Mar 18 2019 at 19:56)</a>:</h4>
<p>we had a nice session on this at the rust all hands actually</p>



<a name="161090658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090658">(Mar 18 2019 at 19:56)</a>:</h4>
<p>of course it's all gone from my head</p>



<a name="161090680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090680">(Mar 18 2019 at 19:56)</a>:</h4>
<p>but we didn't of course get down to the level of code</p>



<a name="161090686"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090686" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090686">(Mar 18 2019 at 19:56)</a>:</h4>
<p>more the 'high level concepts'</p>



<a name="161090704"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090704" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090704">(Mar 18 2019 at 19:57)</a>:</h4>
<p>ps, have you all seen the "timelines" in dropbox paper? kind of nifty ;)</p>



<a name="161090856"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090856" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090856">(Mar 18 2019 at 19:59)</a>:</h4>
<p>OK I don't <em>quite</em> see how to get more precise yet, I think part of the work as we go will be trying to "unfold" these items into more and more specific things</p>



<a name="161090890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090890">(Mar 18 2019 at 19:59)</a>:</h4>
<p>but I think all of the items on this page are doable in 6 weeks</p>



<a name="161090891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090891">(Mar 18 2019 at 19:59)</a>:</h4>
<p>makes sense (feels like roadmap but on a smaller scale)</p>



<a name="161090901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090901">(Mar 18 2019 at 19:59)</a>:</h4>
<p>modulo how many other things get in the way :)</p>



<a name="161090923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090923">(Mar 18 2019 at 19:59)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> "user stories" ;)</p>



<a name="161090962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090962">(Mar 18 2019 at 20:00)</a>:</h4>
<p>I think I may move this dropbox paper into its own folder</p>



<a name="161090988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090988">(Mar 18 2019 at 20:00)</a>:</h4>
<p>(that is, with one paper per sprint)</p>



<a name="161090997"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161090997" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161090997">(Mar 18 2019 at 20:00)</a>:</h4>
<p>sg</p>



<a name="161091013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091013">(Mar 18 2019 at 20:00)</a>:</h4>
<p>I'll drop out of the meeting and review some PRs to the reference</p>



<a name="161091097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091097">(Mar 18 2019 at 20:01)</a>:</h4>
<p><a href="https://paper.dropbox.com/doc/2019.03.18-2019.04.29--AZlfxnrp65HrMpYGI9vtjVlYAg-5gix1dpUSHKirVcEww5iw" target="_blank" title="https://paper.dropbox.com/doc/2019.03.18-2019.04.29--AZlfxnrp65HrMpYGI9vtjVlYAg-5gix1dpUSHKirVcEww5iw">sprint paper doc</a></p>



<a name="161091168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091168">(Mar 18 2019 at 20:02)</a>:</h4>
<p>looks great <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="161091191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091191">(Mar 18 2019 at 20:02)</a>:</h4>
<p>ok, so, now to schedule a few things :)</p>



<a name="161091415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091415">(Mar 18 2019 at 20:05)</a>:</h4>
<p>For the call covering rustc-chalk -integration, I'd like to do that sooner rather than later. I propose either:</p>



<a name="161091467"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091467" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091467">(Mar 18 2019 at 20:06)</a>:</h4>
<ul>
<li>Noon tomorrow (Boston time, UTC-04:00 at the moment afaik)</li>
</ul>



<a name="161091492"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091492" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091492">(Mar 18 2019 at 20:06)</a>:</h4>
<ul>
<li>15:00 tomorrow (Boston time)</li>
</ul>



<a name="161091546"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091546" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091546">(Mar 18 2019 at 20:07)</a>:</h4>
<p>the latter would be preferable for me</p>



<a name="161091563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091563">(Mar 18 2019 at 20:07)</a>:</h4>
<p>ok, that's prob better for (most) Europeans too</p>



<a name="161091565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091565">(Mar 18 2019 at 20:07)</a>:</h4>
<p>let's just do that</p>



<a name="161091582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091582">(Mar 18 2019 at 20:07)</a>:</h4>
<blockquote>
<p>For the call covering rustc-chalk -integration, I'd like to do that sooner rather than later. I propose either:</p>
</blockquote>
<p>Does that cover chalk integration “future steps”? (That's the heading my task is under)</p>



<a name="161091683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091683">(Mar 18 2019 at 20:08)</a>:</h4>
<p><span class="user-mention" data-user-id="117350">@Sunjay Varma</span> nope</p>



<a name="161091695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091695">(Mar 18 2019 at 20:08)</a>:</h4>
<p>I was just going to ping you</p>



<a name="161091720"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091720" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091720">(Mar 18 2019 at 20:09)</a>:</h4>
<p>so Thu is super busy for me</p>



<a name="161091728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091728">(Mar 18 2019 at 20:09)</a>:</h4>
<p>other days are better</p>



<a name="161091732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091732">(Mar 18 2019 at 20:09)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> have what you need from me at the moment?</p>



<a name="161091738"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091738" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091738">(Mar 18 2019 at 20:09)</a>:</h4>
<p>yep, I think so</p>



<a name="161091743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091743">(Mar 18 2019 at 20:09)</a>:</h4>
<p>Suggest a time?</p>



<a name="161091865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091865">(Mar 18 2019 at 20:11)</a>:</h4>
<p><span class="user-mention" data-user-id="117350">@Sunjay Varma</span> wed 14:00 Boston time?</p>



<a name="161091988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161091988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Sunjay Varma <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161091988">(Mar 18 2019 at 20:12)</a>:</h4>
<p>Yup that works. Talk to you then <span aria-label="smile" class="emoji emoji-263a" role="img" title="smile">:smile:</span></p>



<a name="161180402"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202019-03-18/near/161180402" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202019-03-18.html#161180402">(Mar 19 2019 at 19:02)</a>:</h4>
<p>(deleted)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>